草庐IT

2022-03-01 Element UI切换主题、动态换肤功能

全部标签

ruby-on-rails - 切换到 Rails 4.1 时出现错误 - `method_missing':ActiveRecord::Base:Class (NoMethodError) 的未定义方法 `whitelist_attributes='

从Rails4.0切换到Rails4.1时出现此错误:activerecord-4.1.8/lib/active_record/dynamic_matchers.rb:26:in`method_missing':undefinedmethod`whitelist_attributes='forActiveRecord::Base:Class(NoMethodError)我没有在我的应用程序的任何地方使用attr_accessible或attr_protected所以我想知道为什么我有问题。当迁移到Rails4.0时,我已经安装了我的application.rb:配置/应用程序.rb:c

ruby - 动态创建类

我正在尝试创建一个新类,但在创建类之前不知道该类的名称。类似这样的东西;variable="ValidClassName"classvariableendTest=ValidClassName.new如果可能的话,我也很感激关于如何向这个新类动态添加属性(和方法)的提示。我将检索类(class)的“设置”,它们看起来像这样:title:Personattribute:name,Stringattribute:age,Fixnum但不应设计为仅接受该显式文件,属性可能在数字结束类型上有所不同。最后会生成一个类似于下面这样的类:classPersondefinitialize(name,a

ruby-on-rails - Rails 功能测试用例和上传文件到 ActionDispatch::Http::UploadFile

我正在向远程存储文件的Rails应用程序添加测试。我正在使用默认的Rails功能测试。如何向它们添加文件上传?我有:test"createvalidperson"dopost(:create,:person=>{:avatar=>fixture_file_upload('avatar.jpeg')})end出于某种原因,这会上传一个Tempfile并导致AWS/S3gem失败并显示:NoMethodError:undefinedmethod`bytesize'forTempfile他们有什么方法可以让我进行测试以使用ActionDispatch::Http::UploadedFile并

ruby - 如何动态添加 attr_reader

我希望下面的代码能按预期工作,但它给了我一个NoMethodError(为#classMyClassendmy_object=MyClass.newmy_object.instance_variable_set(:@foo,"bar")MyClass.send("attr_reader",:foo)putsmy_object.foo问题是我在一个更大的应用程序中使用完全相同的代码并且它完全按照我的预期工作,但是当我将它简化为这个最基本的示例时它失败了。(我知道还有很多其他方法可以完成我在Ruby中所做的事情) 最佳答案 使用Modu

ruby - 单元测试应该复制功能还是测试输出?

我曾多次遇到这种困境。我的单元测试是否应该复制他们正在测试的方法的功能以验证其完整性?或者单元测试是否应该努力用大量手动创建的输入和预期输出实例来测试该方法?我主要针对以下情况提出问题:您正在测试的方法相当简单,并且可以通过浏览代码一分钟来验证其正确操作。简化示例(ruby):defconcat_strings(str1,str2)returnstr1+"AND"+str2end上述方法的简化功能复制测试:deftest_concat_strings10.timesdostr1=random_string_generatorstr2=random_string_generatorass

ruby-on-rails - Ruby 功能开关/功能脚蹼

Flickr都给我带来了启发和Disqus使用功能开关。他们都在博客上介绍了他们以及他们在两个开发博客上的工作方式。我只是想知道是否有我缺少的Rubygem,或者是否有人知道在Ruby中执行此操作的方法?如果没有任何东西,我希望自己制作并在野外释放它。但我只是想先在这里问一下,因为我还没有找到任何与Flickr和Disqus所达到的远程相似的东西。 最佳答案 检查rollout如果您已经在使用Redis。 关于ruby-on-rails-Ruby功能开关/功能脚蹼,我们在StackOve

ruby - 动态需要文件?

有没有人足够了解Ruby的require来告诉我以下语法是否有效:classSomethingdefinitialize(mode)casemodewhen:onethenrequire'some_gem'when:twothenrequire'other_gem'endendends=Something.new如果是这样,需要将gem放入全局命名空间,就像在文件顶部时一样? 最佳答案 Ifso,wouldtherequireplacethegemintotheglobalnamespaceasthesamerequireatthe

ruby-on-rails - Rails 中的动态常量定义

我使用以下语法在Rails的初始化程序中定义常量:MyModule.const_set('MYCONSTANT','foobar')如果我启动控制台并写入,它就可以工作MyModule::MYCONSTANT我按预期收到了foobar。问题是,当我尝试在模型中调用它时,常量不存在。D应该在哪里动态定义我的常量,以便它在我的模型中也可用?如果我在我的lib/mymodule.rb中静态定义它,它可以工作,但我想在运行时定义一些常量。 最佳答案 如果你想保留config.cache_classes=false,你可以把MyModule.

ruby - 具有动态条件的 rspec `its` 语法

我真的很喜欢将contexts、subjects和its与rspec一起使用来真正清理我的测试代码。典型例子:context"asauser"dosubject{Factory:user}its(:name){should=="Bob"}end但我想不通的是如何使这种情况动态化(即基于其他对象)。its似乎对block内的属性进行实例评估,因此我无法访问它周围的所有内容。我很想做这样的事情:its(:name){should==subject.contact.name}但我看不出有什么方法可以实现这一点。有谁知道是否有一些方法代理到这个实例eval来访问原始对象?或者如果有任何其他方法

ruby-on-rails - 清除 Rails 中单元测试和功能测试之间的测试数据库 (factory_girl)

最近我从fixtures切换到factory_girl来测试我的RubyonRails应用程序。如果我运行raketest:units,在我的/units目录中运行测试,它们都运行完美。如果我使用raketest:functionals运行我的功能测试(在我的/functional目录中),情况也是如此。但是,如果我简单地运行rake测试,同时运行我的单元测试和功能测试,我的验证在第二组测试(在这种情况下是功能测试)上失败,并显示消息“验证失败:名称已经被拍了。”我认为这是由于功能测试创建的对象具有与单元测试中创建的对象相同的参数——这让我相信测试数据库在单元测试和功能测试之间没有被清